package com.vdong.common.oauth.entity.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;


import java.util.Date;

/**
 * 微信授权信息
 *
 * @author zhang
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class WechatAuthorizerInfoResultDTO {

    @ApiModelProperty("主键appId")
    @Id
    private String appid;

    @ApiModelProperty("店铺id")
    private Long storeId;

    @ApiModelProperty("授权方秘钥")
    private String appSecret;

    @ApiModelProperty("刷新令牌")
    private String refreshToken;

    @ApiModelProperty("授权方昵称")
    private String nickName;

    @ApiModelProperty("授权方头像")
    private String headImg;

    @ApiModelProperty("微信：授权方公众号类型，0代表订阅号，1代表由历史老帐号升级后的订阅号，2代表服务号/小程序：默认为0")
    private Integer serviceTypeInfo;

    @ApiModelProperty("微信：授权方认证类型，-1代表未认证，0代表微信认证，1代表新浪微博认证，2代表腾讯微博认证，3代表已资质认证通过但还未通过名称认证，4代表已资质认证通过、还未通过名称认证，但通过了新浪微博认证，5代表已资质认证通过、还未通过名称认证，但通过了腾讯微博认证/小程序：授权方认证类型，-1代表未认证，0代表微信认证")
    private Integer verifyTypeInfo;

    @ApiModelProperty("授权方公众号的原始ID")
    private String userName;

    @ApiModelProperty("小程序账号介绍")
    private String signature;

    @ApiModelProperty("授权方账号的主体名称")
    private String principalName;

    @ApiModelProperty("授权方公众号所设置的微信号，可能为空")
    private String alias;

    @ApiModelProperty("二维码图片的URL")
    private String qrcodeUrl;

    @ApiModelProperty("用以了解以下功能的开通状况（0代表未开通，1代表已开通）： open_store:是否开通微信门店功能 open_scan:是否开通微信扫商品功能 open_pay:是否开通微信支付功能 open_card:是否开通微信卡券功能 open_shake:是否开通微信摇一摇功能")
    private String businessInfo;

    @ApiModelProperty("小程序详细信息，可根据这个字段判断是否为小程序类型授权")
    private String miniprograminfo;

    @ApiModelProperty("公众号授权给开发者的权限集列表，ID为1到15时分别代表： 消息管理权限 用户管理权限 帐号服务权限 网页服务权限 微信小店权限 微信多客服权限 群发与通知权限 微信卡券权限 微信扫一扫权限 微信连WIFI权限 素材管理权限 微信摇周边权限 微信门店权限 微信支付权限 自定义菜单权限  小程序授权给开发者的权限集列表，ID为17到19时分别代表： 17.帐号管理权限 18.开发管理权限 19.客服消息管理权限")
    private String funcInfo;

    @ApiModelProperty("授权日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty("授权修改日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modifyTime;

    @ApiModelProperty("authorizeType=绑定类型：1=公众号,2=小程序")
    private Integer authorizeType;

    @ApiModelProperty("开放平台id")
    private String openId;

    @ApiModelProperty("状态：1=正常授权,0=取消授权")
    private Integer status;
}
